
package com.one.odf.model;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;


/**
 * <p>Java class for ICMSDocumentType complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="ICMSDocumentType"&gt;
 *   &lt;complexContent&gt;
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *       &lt;sequence&gt;
 *         &lt;element name="AssociatedVenue" type="{}transportVenueType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="Related" type="{}newsRelatedType" minOccurs="0"/&gt;
 *         &lt;element name="Title" type="{}messageType" minOccurs="0"/&gt;
 *         &lt;element name="Message" type="{}messageType" minOccurs="0"/&gt;
 *         &lt;element name="Body" type="{}messageType" minOccurs="0"/&gt;
 *       &lt;/sequence&gt;
 *       &lt;attribute name="Parent" use="required" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *       &lt;attribute name="Category" type="{http://www.w3.org/2001/XMLSchema}string" default="" /&gt;
 *       &lt;attribute name="CategoryName" type="{http://www.w3.org/2001/XMLSchema}string" default="" /&gt;
 *       &lt;attribute name="ReportType" type="{http://www.w3.org/2001/XMLSchema}string" default="" /&gt;
 *       &lt;attribute name="ReportTypeName" type="{http://www.w3.org/2001/XMLSchema}string" default="" /&gt;
 *       &lt;attribute name="SortOrder" type="{http://www.w3.org/2001/XMLSchema}string" default="" /&gt;
 *       &lt;attribute name="FileName" type="{http://www.w3.org/2001/XMLSchema}string" default="" /&gt;
 *       &lt;attribute name="ReportFormat" type="{http://www.w3.org/2001/XMLSchema}string" default="" /&gt;
 *       &lt;attribute name="ModificationIndicator" type="{}modificationIndicatorType" /&gt;
 *       &lt;attribute name="ShuttleServiceType" type="{http://www.w3.org/2001/XMLSchema}string" default="" /&gt;
 *       &lt;attribute name="ShuttleServiceTypeName" type="{http://www.w3.org/2001/XMLSchema}string" default="" /&gt;
 *       &lt;attribute name="LineIdentifier" type="{http://www.w3.org/2001/XMLSchema}string" default="" /&gt;
 *       &lt;attribute name="ExternalCode" type="{http://www.w3.org/2001/XMLSchema}string" default="" /&gt;
 *       &lt;attribute name="Item" type="{http://www.w3.org/2001/XMLSchema}string" default="" /&gt;
 *       &lt;attribute name="ItemName" type="{http://www.w3.org/2001/XMLSchema}string" default="" /&gt;
 *       &lt;attribute name="ItemDate" type="{}odfDateType" /&gt;
 *       &lt;attribute name="ItemTime" type="{}odfTimeType" /&gt;
 *       &lt;attribute name="Unit" type="{http://www.w3.org/2001/XMLSchema}string" /&gt;
 *     &lt;/restriction&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ICMSDocumentType", propOrder = {
    "associatedVenue",
    "related",
    "title",
    "message",
    "body"
})
public class ICMSDocumentType {

    @XmlElement(name = "AssociatedVenue")
    protected List<TransportVenueType> associatedVenue;
    @XmlElement(name = "Related")
    protected NewsRelatedType related;
    @XmlElement(name = "Title")
    protected String title;
    @XmlElement(name = "Message")
    protected String message;
    @XmlElement(name = "Body")
    protected String body;
    @XmlAttribute(name = "Parent", required = true)
    protected String parent;
    @XmlAttribute(name = "Category")
    protected String category;
    @XmlAttribute(name = "CategoryName")
    protected String categoryName;
    @XmlAttribute(name = "ReportType")
    protected String reportType;
    @XmlAttribute(name = "ReportTypeName")
    protected String reportTypeName;
    @XmlAttribute(name = "SortOrder")
    protected String sortOrder;
    @XmlAttribute(name = "FileName")
    protected String fileName;
    @XmlAttribute(name = "ReportFormat")
    protected String reportFormat;
    @XmlAttribute(name = "ModificationIndicator")
    protected ModificationIndicatorType modificationIndicator;
    @XmlAttribute(name = "ShuttleServiceType")
    protected String shuttleServiceType;
    @XmlAttribute(name = "ShuttleServiceTypeName")
    protected String shuttleServiceTypeName;
    @XmlAttribute(name = "LineIdentifier")
    protected String lineIdentifier;
    @XmlAttribute(name = "ExternalCode")
    protected String externalCode;
    @XmlAttribute(name = "Item")
    protected String item;
    @XmlAttribute(name = "ItemName")
    protected String itemName;
    @XmlAttribute(name = "ItemDate")
    protected String itemDate;
    @XmlAttribute(name = "ItemTime")
    protected String itemTime;
    @XmlAttribute(name = "Unit")
    protected String unit;

    /**
     * Gets the value of the associatedVenue property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the associatedVenue property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getAssociatedVenue().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link TransportVenueType }
     * 
     * 
     */
    public List<TransportVenueType> getAssociatedVenue() {
        if (associatedVenue == null) {
            associatedVenue = new ArrayList<TransportVenueType>();
        }
        return this.associatedVenue;
    }

    /**
     * Gets the value of the related property.
     * 
     * @return
     *     possible object is
     *     {@link NewsRelatedType }
     *     
     */
    public NewsRelatedType getRelated() {
        return related;
    }

    /**
     * Sets the value of the related property.
     * 
     * @param value
     *     allowed object is
     *     {@link NewsRelatedType }
     *     
     */
    public void setRelated(NewsRelatedType value) {
        this.related = value;
    }

    /**
     * Gets the value of the title property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getTitle() {
        return title;
    }

    /**
     * Sets the value of the title property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setTitle(String value) {
        this.title = value;
    }

    /**
     * Gets the value of the message property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getMessage() {
        return message;
    }

    /**
     * Sets the value of the message property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setMessage(String value) {
        this.message = value;
    }

    /**
     * Gets the value of the body property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getBody() {
        return body;
    }

    /**
     * Sets the value of the body property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setBody(String value) {
        this.body = value;
    }

    /**
     * Gets the value of the parent property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getParent() {
        return parent;
    }

    /**
     * Sets the value of the parent property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setParent(String value) {
        this.parent = value;
    }

    /**
     * Gets the value of the category property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCategory() {
        if (category == null) {
            return "";
        } else {
            return category;
        }
    }

    /**
     * Sets the value of the category property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCategory(String value) {
        this.category = value;
    }

    /**
     * Gets the value of the categoryName property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCategoryName() {
        if (categoryName == null) {
            return "";
        } else {
            return categoryName;
        }
    }

    /**
     * Sets the value of the categoryName property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCategoryName(String value) {
        this.categoryName = value;
    }

    /**
     * Gets the value of the reportType property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getReportType() {
        if (reportType == null) {
            return "";
        } else {
            return reportType;
        }
    }

    /**
     * Sets the value of the reportType property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setReportType(String value) {
        this.reportType = value;
    }

    /**
     * Gets the value of the reportTypeName property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getReportTypeName() {
        if (reportTypeName == null) {
            return "";
        } else {
            return reportTypeName;
        }
    }

    /**
     * Sets the value of the reportTypeName property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setReportTypeName(String value) {
        this.reportTypeName = value;
    }

    /**
     * Gets the value of the sortOrder property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getSortOrder() {
        if (sortOrder == null) {
            return "";
        } else {
            return sortOrder;
        }
    }

    /**
     * Sets the value of the sortOrder property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setSortOrder(String value) {
        this.sortOrder = value;
    }

    /**
     * Gets the value of the fileName property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getFileName() {
        if (fileName == null) {
            return "";
        } else {
            return fileName;
        }
    }

    /**
     * Sets the value of the fileName property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setFileName(String value) {
        this.fileName = value;
    }

    /**
     * Gets the value of the reportFormat property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getReportFormat() {
        if (reportFormat == null) {
            return "";
        } else {
            return reportFormat;
        }
    }

    /**
     * Sets the value of the reportFormat property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setReportFormat(String value) {
        this.reportFormat = value;
    }

    /**
     * Gets the value of the modificationIndicator property.
     * 
     * @return
     *     possible object is
     *     {@link ModificationIndicatorType }
     *     
     */
    public ModificationIndicatorType getModificationIndicator() {
        return modificationIndicator;
    }

    /**
     * Sets the value of the modificationIndicator property.
     * 
     * @param value
     *     allowed object is
     *     {@link ModificationIndicatorType }
     *     
     */
    public void setModificationIndicator(ModificationIndicatorType value) {
        this.modificationIndicator = value;
    }

    /**
     * Gets the value of the shuttleServiceType property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getShuttleServiceType() {
        if (shuttleServiceType == null) {
            return "";
        } else {
            return shuttleServiceType;
        }
    }

    /**
     * Sets the value of the shuttleServiceType property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setShuttleServiceType(String value) {
        this.shuttleServiceType = value;
    }

    /**
     * Gets the value of the shuttleServiceTypeName property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getShuttleServiceTypeName() {
        if (shuttleServiceTypeName == null) {
            return "";
        } else {
            return shuttleServiceTypeName;
        }
    }

    /**
     * Sets the value of the shuttleServiceTypeName property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setShuttleServiceTypeName(String value) {
        this.shuttleServiceTypeName = value;
    }

    /**
     * Gets the value of the lineIdentifier property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getLineIdentifier() {
        if (lineIdentifier == null) {
            return "";
        } else {
            return lineIdentifier;
        }
    }

    /**
     * Sets the value of the lineIdentifier property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setLineIdentifier(String value) {
        this.lineIdentifier = value;
    }

    /**
     * Gets the value of the externalCode property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getExternalCode() {
        if (externalCode == null) {
            return "";
        } else {
            return externalCode;
        }
    }

    /**
     * Sets the value of the externalCode property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setExternalCode(String value) {
        this.externalCode = value;
    }

    /**
     * Gets the value of the item property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getItem() {
        if (item == null) {
            return "";
        } else {
            return item;
        }
    }

    /**
     * Sets the value of the item property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setItem(String value) {
        this.item = value;
    }

    /**
     * Gets the value of the itemName property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getItemName() {
        if (itemName == null) {
            return "";
        } else {
            return itemName;
        }
    }

    /**
     * Sets the value of the itemName property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setItemName(String value) {
        this.itemName = value;
    }

    /**
     * Gets the value of the itemDate property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getItemDate() {
        return itemDate;
    }

    /**
     * Sets the value of the itemDate property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setItemDate(String value) {
        this.itemDate = value;
    }

    /**
     * Gets the value of the itemTime property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getItemTime() {
        return itemTime;
    }

    /**
     * Sets the value of the itemTime property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setItemTime(String value) {
        this.itemTime = value;
    }

    /**
     * Gets the value of the unit property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getUnit() {
        return unit;
    }

    /**
     * Sets the value of the unit property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setUnit(String value) {
        this.unit = value;
    }

}
